Full source code giải đố hình đơn giản
16.634 lượt xem;
- StarsLocker.cs
- Puzzle Level Controller Scripts /
- Scripts /
- Assets /
- project /
1 using System.Collections;
2 using System.Collections.Generic;
3 using UnityEngine;
4
5 public class StarsLocker : MonoBehaviour
6 {
7 [SerializeField]
8 private PuzzleGameSaver puzzleGameSaver;
9
10 [SerializeField]
11 private GameObject[] level1Stars, level2Stars, level3Stars, level4Stars, level5Stars;
12
13 public int[] candyPuzzleLevelStars;
14 public int[] transportPuzzleLevelStars;
15 public int[] shapePuzzleLevelStars;
16
17 void Awake()
18 {
19
20 }
21
22 // Use this for initialization
23 void Start()
24 {
25
26 }
27
28 public void ActivateStars(int level, string selectedPuzzle)
29 {
30 GetStars();
31
32 int stars;
33
34 switch (selectedPuzzle)
35 {
36
37 case "Candy Puzzle":
38
39 stars = candyPuzzleLevelStars[level];
40 ActivateLevelStars(level, stars);
41
42 break;
43
44 case "Transport Puzzle":
45
46 stars = transportPuzzleLevelStars[level];
47 ActivateLevelStars(level, stars);
48
49 break;
50
51 case "Shape Puzzle":
52
53 stars = shapePuzzleLevelStars[level];
54 ActivateLevelStars(level, stars);
55
56 break;
57
58 }
59 }
60
61 void ActivateLevelStars(int level, int looper)
62 {
63 switch (level)
64 {
65
66 case 0:
67
68 if (looper != 0)
69 {
70 for (int i = 0; i < looper; i++)
71 {
72 level1Stars[i].SetActive(true);
73 }
74 }
75
76 break;
77
78 case 1:
79
80 if (looper != 0)
81 {
82 for (int i = 0; i < looper; i++)
83 {
84 level2Stars[i].SetActive(true);
85 }
86 }
87
88 break;
89
90 case 2:
91
92 if (looper != 0)
93 {
94 for (int i = 0; i < looper; i++)
95 {
96 level3Stars[i].SetActive(true);
97 }
98 }
99
100 break;
101
102 case 3:
103
104 if (looper != 0)
105 {
106 for (int i = 0; i < looper; i++)
107 {
108 level4Stars[i].SetActive(true);
109 }
110 }
111
112 break;
113
114 case 4:
115
116 if (looper != 0)
117 {
118 for (int i = 0; i < looper; i++)
119 {
120 level5Stars[i].SetActive(true);
121 }
122 }
123
124 break;
125
126 }
127 }
128
129 public void DeactivateStars()
130 {
131 for(int i = 0; i < level1Stars.Length; i++)
132 {
133 level1Stars[i].SetActive(false);
134 level2Stars[i].SetActive(false);
135 level3Stars[i].SetActive(false);
136 level4Stars[i].SetActive(false);
137 level5Stars[i].SetActive(false);
138 }
139 }
140
141 void GetStars()
142 {
143 candyPuzzleLevelStars = puzzleGameSaver.candyPuzzleLevelStars;
144 transportPuzzleLevelStars = puzzleGameSaver.transportPuzzleLevelStars;
145 shapePuzzleLevelStars = puzzleGameSaver.shapePuzzleLevelStars;
146 }
147
148 }
2 using System.Collections.Generic;
3 using UnityEngine;
4
5 public class StarsLocker : MonoBehaviour
6 {
7 [SerializeField]
8 private PuzzleGameSaver puzzleGameSaver;
9
10 [SerializeField]
11 private GameObject[] level1Stars, level2Stars, level3Stars, level4Stars, level5Stars;
12
13 public int[] candyPuzzleLevelStars;
14 public int[] transportPuzzleLevelStars;
15 public int[] shapePuzzleLevelStars;
16
17 void Awake()
18 {
19
20 }
21
22 // Use this for initialization
23 void Start()
24 {
25
26 }
27
28 public void ActivateStars(int level, string selectedPuzzle)
29 {
30 GetStars();
31
32 int stars;
33
34 switch (selectedPuzzle)
35 {
36
37 case "Candy Puzzle":
38
39 stars = candyPuzzleLevelStars[level];
40 ActivateLevelStars(level, stars);
41
42 break;
43
44 case "Transport Puzzle":
45
46 stars = transportPuzzleLevelStars[level];
47 ActivateLevelStars(level, stars);
48
49 break;
50
51 case "Shape Puzzle":
52
53 stars = shapePuzzleLevelStars[level];
54 ActivateLevelStars(level, stars);
55
56 break;
57
58 }
59 }
60
61 void ActivateLevelStars(int level, int looper)
62 {
63 switch (level)
64 {
65
66 case 0:
67
68 if (looper != 0)
69 {
70 for (int i = 0; i < looper; i++)
71 {
72 level1Stars[i].SetActive(true);
73 }
74 }
75
76 break;
77
78 case 1:
79
80 if (looper != 0)
81 {
82 for (int i = 0; i < looper; i++)
83 {
84 level2Stars[i].SetActive(true);
85 }
86 }
87
88 break;
89
90 case 2:
91
92 if (looper != 0)
93 {
94 for (int i = 0; i < looper; i++)
95 {
96 level3Stars[i].SetActive(true);
97 }
98 }
99
100 break;
101
102 case 3:
103
104 if (looper != 0)
105 {
106 for (int i = 0; i < looper; i++)
107 {
108 level4Stars[i].SetActive(true);
109 }
110 }
111
112 break;
113
114 case 4:
115
116 if (looper != 0)
117 {
118 for (int i = 0; i < looper; i++)
119 {
120 level5Stars[i].SetActive(true);
121 }
122 }
123
124 break;
125
126 }
127 }
128
129 public void DeactivateStars()
130 {
131 for(int i = 0; i < level1Stars.Length; i++)
132 {
133 level1Stars[i].SetActive(false);
134 level2Stars[i].SetActive(false);
135 level3Stars[i].SetActive(false);
136 level4Stars[i].SetActive(false);
137 level5Stars[i].SetActive(false);
138 }
139 }
140
141 void GetStars()
142 {
143 candyPuzzleLevelStars = puzzleGameSaver.candyPuzzleLevelStars;
144 transportPuzzleLevelStars = puzzleGameSaver.transportPuzzleLevelStars;
145 shapePuzzleLevelStars = puzzleGameSaver.shapePuzzleLevelStars;
146 }
147
148 }